1. Field of the Invention
The present invention relates generally to the field of storage systems and particularly to a method and apparatus for providing direct interface between secondary function devices and application software modules included in the host of a storage system.
2. Description of the Prior Art
With the advent of nonvolatile or flash memory, consumer electronic devices have come to enjoy a wide variety of applications, such as a memory drive removably connectable to a Personal Computer (PC) or other such host devices.
FIG. 1 shows a prior art PC storage system 10 to include a host 12 coupled to a storage device 14, which may or may not be removably connected to the host 12. The device 14 is removably connectable to the host 12 through the interface 28, which in one example, is a Universal Standard Bus (USB) connector. The host 12 is shown to include application software module 16 coupled to a controller driver module 18. The controller device 20 is shown coupled to a sensor 22 and a flash memory unit 24. The flash memory unit 24 includes flash or nonvolatile memory for storing various types of electronic information even when no power is provided to the system 10. Example of the type of information stored in the unit 24 is based on the application of the system 10 and can be digital photographs, passwords, personal settings and the like.
The sensor 22 is shown connected to the device 20 through a connector 26, which in one example is an Serial Peripheral Interface (SPI) interface. The sensor 22 is a fingerprint sensor for detecting a human fingerprint when the tip of a finger is swiped thereover. The sensor 22, after noting a particular fingerprint, upon the completion of a finger swipe, causes storage of the fingerprint information in the flash memory unit 24 through the application software module 16, again through the controller device 20. In this manner, the sensor 22 is intended to add a level of security to the system 10 so that only the person whose fingerprint is recognized or matched to previously stored fingerprint information is given access to information stored in the flash memory unit 24.
An example of the application software module 16 includes ‘Smartgenie’, which is a software program for operating fingerprint information, causing storage of passwords and directing encryption information and other security-related information. The driver module 18 allows the module 16 to communicate with the controller device 20 by converting high-level software language to a lower-level comprehendible to hardware such as the controller device 20. Thus, the driver module 18 issues commands that are transmitted through the interface 28 to the controller device 20 that may or may not be followed by data through the same interface. As earlier stated, the host 12 may be a PC including an operating system, such as Windows by Microsoft, Inc. of Seattle, for directing system functions and mapping memory and recognizing entry points for various devices connected to the host 12.
The problem with the system 10 is that the sensor 22 remains unknown to the operating system of the host 12 due to a lack of entry point into the sensor 22. Stated differently, the operating system has no way of directly accessing the sensor 22, as the standard driver module, or driver module 18, does not have an actual entry point for the sensor 22. The driver module 18 generally directs the controller device 20, which, in turn, controls the flash memory unit 24 and the sensor 22.
In the prior art system 10, the application software module 16 communicates to the flash memory unit 24 because the controller device 20 is only allowed to communicate with the flash memory unit 24 and not the sensor 22, in accordance with the USB standard, which dictates the communication occurring through the interface 28. A need arises for the application software module 16 to communicate with the sensor 22.
FIG. 2 shows the prior art system 10 of FIG. 1 including some of the functions and devices depicted in FIG. 1 in addition to others. For example, in FIG. 2, the host 12 is shown to include three driver modules, the controller driver module 18, a sensor driver module 32 and a hub driver module 34. The storage device 14 is shown to include a hub 30 in addition to the controller device 20 and the sensor 22.
The driver module 32 communicates with the sensor 22 is shown coupled to the storage device 14 through the driver module 34 and the driver module 18 is also coupled to the storage device 14 through the driver module 34. Particularly, the driver module 34 causes coupling of the driver modules 18 and 32 to the hub 30 of the storage device 14. The hub 30 is shown coupled to the sensor 22 and to the controller device 20. FIG. 2 shows that the way in which the system 10 works in order for the operating system (Windows for example) of the host 12 to load the driver module 32 to allow the application software module 16 to communicate with the sensor 22. There needs to be a system removing the driver module 34 and the hub 30 from the system 10. Also, there needs to be a system such that the driver module 32 is moved into the application software module 16 so that other applications of the host 12 are unaware of the sensor 22 through standard discovery mechanisms (querying the host's operating system).
The driver module 18 is for causing communication to flash memory via the controller device 20, whereas, the driver module 32 is for causing communication to the sensor 22. At any given time, the hub 30 determines a communication path either with the controller device 20 or the sensor 22, thus, the driver modules 32, 18 and 34 cannot directly and upon their wish communicate with the controller device 20 or sensor 22. The problem with such prior art systems is that all of the devices, i.e. the sensor 22, the flash memory and any other device connected in this manner (through the use of drivers within the host) are known to everyone and can thus be accessed, manipulated and/or deleted, which presents security issues. Additionally, the hub 30 and the driver modules 32 and 34 of FIG. 2 add unnecessary real estate to the system 10 resulting in increased manufacturing costs associated therewith. Even if the hub 30 is implemented in another device so that it appears that the system real estate is less than having the individual presence of a hub, the security concerns still remain and there are, nevertheless, unnecessary manufacturing costs.
In the case of the desire to have a device be un-temperable by third parties, there is a need for secondary devices to be accessible only to a select and predetermined number of parties while unknown to others so as to preserve security and at the same time, decrease the number of electronic devices so as to decrease system manufacturing costs.
The need also arises to allow the system to operate with less current thus helping to use devices that qualify under low power devices in the USB specification (for example) and to preserve battery power in wireless devices that include their own power source.